Microsoft Technologies Try-Catch-Finally ব্লক ব্যবহার গাইড ও নোট

300

PowerShell-এ Try-Catch-Finally ব্লক ব্যবহার করা হয় এক্সসেপশন হ্যান্ডলিংয়ের জন্য। এটি এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে আপনি জানেন যে কোন কোড ব্লকটি রান করার সময় ত্রুটি (error) ঘটতে পারে, এবং আপনি সেই ত্রুটিটি সঠিকভাবে পরিচালনা করতে চান।

Try-Catch-Finally ব্লকের কাঠামো

PowerShell-এ Try-Catch-Finally ব্লক তিনটি অংশে বিভক্ত:

  • Try: এখানে আপনি সেই কোড লিখেন যা আপনি চালানোর সময় ত্রুটি ঘটতে পারে এমন কিছু করতে চান।
  • Catch: যখন Try ব্লকের কোডে ত্রুটি ঘটে, তখন এই অংশটি এক্সসেপশন (ত্রুটি) ধরবে এবং আপনি ত্রুটিটি কিভাবে হ্যান্ডেল করবেন তা নির্দিষ্ট করবেন।
  • Finally: এই অংশটি ঐকিকভাবে এক্সসেপশন ঘটুক বা না ঘটুক, শেষ পর্যন্ত যা করতে চান তা সম্পাদন করবে। এটি সাধারণত ফাইল, ডাটাবেস সংযোগ বা অন্যান্য রিসোর্সগুলি বন্ধ করার জন্য ব্যবহৃত হয়।

Try-Catch-Finally ব্লকের উদাহরণ

try {
    # কোড যা ত্রুটি ঘটাতে পারে
    $result = 10 / 0  # Division by zero error
} catch {
    # ত্রুটি ঘটলে কী হবে
    Write-Host "ত্রুটি: $_"
} finally {
    # এই অংশটি সবসময় কার্যকর হবে
    Write-Host "Finally ব্লকটি সবসময় রান করবে"
}

ব্যাখ্যা:

  • Try ব্লকে কোডে একটি বিভাগে 0 দ্বারা ভাগ করার চেষ্টা করা হয়েছে, যা ত্রুটি ঘটায়।
  • Catch ব্লকটি সেই ত্রুটিকে ধরবে এবং $_ ব্যবহার করে ত্রুটির বার্তা দেখাবে।
  • Finally ব্লকটি ত্রুটি ঘটুক বা না ঘটুক, এটি সবসময় রান করবে এবং আমরা এখানে একটি বার্তা দেখিয়েছি যে এটি সবসময় কার্যকর হবে।

এখানে, আউটপুট হবে:

ত্রুটি: Division by zero.
Finally ব্লকটি সবসময় রান করবে

একাধিক Catch ব্লক ব্যবহার

PowerShell-এ আপনি একাধিক Catch ব্লকও ব্যবহার করতে পারেন, যাতে বিভিন্ন ধরনের এক্সসেপশন (ত্রুটি) আলাদাভাবে হ্যান্ডেল করা যায়।

try {
    # কোড যা বিভিন্ন ধরনের ত্রুটি ঘটাতে পারে
    $file = Get-Content "C:\InvalidFile.txt"
} catch [System.IO.FileNotFoundException] {
    Write-Host "ফাইল পাওয়া যায়নি!"
} catch [System.UnauthorizedAccessException] {
    Write-Host "আপনার কাছে ফাইলটি অ্যাক্সেস করার অনুমতি নেই!"
} catch {
    Write-Host "অন্য একটি ত্রুটি ঘটেছে: $_"
} finally {
    Write-Host "ফাইনালি ব্লকটি সবসময় রান করবে"
}

ব্যাখ্যা:

  • প্রথম Catch ব্লকটি FileNotFoundException ধরবে যদি ফাইলটি না পাওয়া যায়।
  • দ্বিতীয় Catch ব্লকটি UnauthorizedAccessException ধরবে যদি ফাইলটি অ্যাক্সেস করার অনুমতি না থাকে।
  • তৃতীয় Catch ব্লকটি অন্যান্য যেকোনো এক্সসেপশন ধরবে।
  • Finally ব্লকটি সবসময় রান করবে, এমনকি যদি কোনো ত্রুটি না ঘটে।

এক্সসেপশন সম্পর্কে আরো বিস্তারিত

PowerShell-এ এক্সসেপশনকে আরও বিশদভাবে কাস্টমাইজ এবং ক্যাটচার করা যায়। আপনি বিশেষভাবে এক্সসেপশন অবজেক্টের তথ্য পেতে পারেন যেমন:

  • $_ – এটি বর্তমান এক্সসেপশন অবজেক্ট।
  • $Error – এটি সেশন অনুযায়ী ঘটানো সব ত্রুটির তালিকা।
  • $_ ব্যবহার করে আপনি ত্রুটির বার্তা, স্ট্যাক ট্রেস, এবং আরও অনেক তথ্য দেখতে পারেন।

উদাহরণ:

try {
    $x = 1 / 0
} catch {
    Write-Host "ত্রুটি বার্তা: $($_.Exception.Message)"
    Write-Host "স্ট্যাক ট্রেস: $($_.Exception.StackTrace)"
}

এখানে, ত্রুটির বার্তা এবং স্ট্যাক ট্রেসও আউটপুট হিসেবে দেখানো হবে।


Conclusion

PowerShell-এর Try-Catch-Finally ব্লক আপনার স্ক্রিপ্টের মধ্যে ত্রুটি হ্যান্ডলিং অত্যন্ত সহজ করে তোলে। এটি ত্রুটি ঘটলে আপনার স্ক্রিপ্টকে ক্র্যাশ হওয়া থেকে রক্ষা করে এবং আপনি কাস্টম এক্সসেপশন মেসেজ এবং কার্যক্রম পরিচালনা করতে পারেন। Finally ব্লকটি খুবই গুরুত্বপূর্ণ কারণ এটি নিশ্চিৎ করে যে কোডের শেষে সব রিসোর্স মুক্ত হবে, যেমন ফাইল বা ডাটাবেস সংযোগ বন্ধ করা।

Content added By
Promotion

Are you sure to start over?

Loading...